﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Espam.Idiomas.Decimo.Tesis.Datos;
using System.Data;
using System.Data.SqlClient;

namespace Espam.Idiomas.Decimo.Tesis.Negocio
{
   public class ListadoDocentes : Docentes
    {
        public List<Docentes> getDocentes()
        {
            BaseDatos oBase = new BaseDatos();
            List<Docentes> lista = new List<Docentes>();
            //lista.Insert(0, new Docentes() { valorID = 0, descripcion = "< Seleccione un Docente >" });
            SqlDataReader reader;
            try
            {
                string consulta = string.Format("sp_getDocentes");
                SqlCommand comando = new SqlCommand(consulta,oBase.conexion);
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("estado",estado);
                oBase.Conectar();
                reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    Docentes docentes = new Docentes();
                    docentes.valorID = reader.GetInt32(0);
                    docentes.descripcion = reader.GetString(1);
                    docentes.nombresYApellidos = reader.GetString(1) + " " + reader.GetString(2);
                    docentes.nombres = reader.GetString(2);
                    docentes.documento = reader.GetString(3);
                    docentes.titulo = reader.GetString(4);
                    docentes.cadenaPicPerfil = reader.GetString(5);
                    docentes.cadenaCV = reader.GetString(6);
                    docentes.numero = reader.GetInt32(7);//agregue esto para la numeracion
                    lista.Add(docentes);
                  
                }

                return lista;
            }
            catch (Exception)
            {
                
                throw;
            }
        }

        public List<Docentes> getUsuarios()
        {
            BaseDatos oBase = new BaseDatos();
            List<Docentes> lista = new List<Docentes>();
            //lista.Insert(0, new Docentes() { valorID = 0, descripcion = "< Seleccione un Docente >" });
            SqlDataReader reader;
            try
            {
                string consulta = string.Format("sp_getUsuarios");
                SqlCommand comando = new SqlCommand(consulta, oBase.conexion);
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("estado", estado);
                oBase.Conectar();
                reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    Docentes docentes = new Docentes();
                    docentes.valorID = reader.GetInt32(0);
                    docentes.apellidos = reader.GetString(1);
                    docentes.nombres = reader.GetString(2);
                    docentes.documento = reader.GetString(3);
                    docentes.cadenaPicPerfil = reader.GetString(4);
                    lista.Add(docentes);
                }

                return lista;
            }
            catch (Exception)
            {

                throw;
            }
        }

      
        public string SaveDocente()
        {   BaseDatos oBase = new BaseDatos();
            string mensaje="";
            SqlDataReader reader;
            try
            {
                string consulta = string.Format("sp_insertDocentes");
                SqlCommand comando = new SqlCommand();
                comando.Connection = oBase.conexion;
                comando.CommandText = consulta;
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("nombres",nombres);
                comando.Parameters.AddWithValue("apellidos", apellidos);
                comando.Parameters.AddWithValue("documento", documento);
                comando.Parameters.AddWithValue("titulo", titulo);
                comando.Parameters.AddWithValue("cadenafoto", cadenaPicPerfil);
                comando.Parameters.AddWithValue("cadenaCV", cadenaCV);
                comando.Parameters.AddWithValue("idGenero", idGenero);
                comando.Parameters.AddWithValue("clave",clave);
                oBase.Conectar();
                reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    mensaje = reader.GetString(0);
                }
            }
            catch (Exception ex)
            {

                mensaje = ex.Message;
            }
            finally
            {
                oBase.CerrarConexion();
            }
            return mensaje;
        }

        public string saveUsuarios()
        {
            BaseDatos oBase = new BaseDatos();
            string mensaje = "";
            SqlDataReader reader;
            try
            {
                string consulta = string.Format("sp_insertAdmin");
                SqlCommand comando = new SqlCommand();
                comando.Connection = oBase.conexion;
                comando.CommandText = consulta;
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("nombres", nombres);
                comando.Parameters.AddWithValue("apellidos", apellidos);
                comando.Parameters.AddWithValue("documento", documento);
                comando.Parameters.AddWithValue("cadenafoto", cadenaPicPerfil);
                comando.Parameters.AddWithValue("idGenero", idGenero);
                comando.Parameters.AddWithValue("clave", clave);
                oBase.Conectar();
                reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    mensaje = reader.GetString(0);
                }
            }
            catch (Exception ex)
            {

                mensaje = ex.Message;
            }
            finally
            {
                oBase.CerrarConexion();
            }
            return mensaje;
            
        }
        public List<Docentes> GetDocenteById()
        {
            BaseDatos oBase = new BaseDatos();
            List<Docentes> lista = new List<Docentes>();
            SqlDataReader reader;
            try
            {
                string consulta = string.Format("sp_getDocenteById");
                SqlCommand comando = new SqlCommand();
                comando.Connection = oBase.conexion;
                comando.CommandText = consulta;
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("@idDocente", valorID);
                oBase.Conectar();
                reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    Docentes oDocentes = new Docentes();
                    oDocentes.valorID = reader.GetInt32(0);
                    oDocentes.nombres = reader.GetString(1);
                    oDocentes.apellidos = reader.GetString(2);
                    oDocentes.documento = reader.GetString(3);
                    oDocentes.titulo = reader.GetString(4);
                    oDocentes.idGenero = reader.GetInt32(5);
                    oDocentes.cadenaPicPerfil = reader.GetString(6);
                    oDocentes.cadenaCV = reader.GetString(7);
                    oDocentes.idRol = reader.GetInt32(8);
                    lista.Add(oDocentes);
                }
            }
            catch (Exception)
            {
                
                throw;
            }
            return lista;
        }

          public List<Docentes> GetUsuarioById()
        {
            BaseDatos oBase = new BaseDatos();
            List<Docentes> lista = new List<Docentes>();
            SqlDataReader reader;
            try
            {
                string consulta = string.Format("sp_getUsuarioById");
                SqlCommand comando = new SqlCommand();
                comando.Connection = oBase.conexion;
                comando.CommandText = consulta;
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("@idPersona", valorID);
                oBase.Conectar();
                reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    Docentes oDocentes = new Docentes();
                    oDocentes.valorID = reader.GetInt32(0);
                    oDocentes.nombres = reader.GetString(1);
                    oDocentes.apellidos = reader.GetString(2);
                    oDocentes.documento = reader.GetString(3);
                    oDocentes.idGenero = reader.GetInt32(4);
                    oDocentes.cadenaPicPerfil = reader.GetString(5);
                    oDocentes.idRol = reader.GetInt32(6);
                    lista.Add(oDocentes);
                }
            }
            catch (Exception)
            {
                
                throw;
            }
            return lista;
        }
       

        public string EditDocente()
        {
            string mensaje = "";
            BaseDatos oBase = new BaseDatos();
            SqlDataReader reader;
            try
            {
                string consulta = string.Format("sp_updateDocentes");
                SqlCommand comando = new SqlCommand();
                comando.Connection = oBase.conexion;
                comando.CommandText = consulta;
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("@idDocentes", valorID);
                comando.Parameters.AddWithValue("nombres", nombres);
                comando.Parameters.AddWithValue("apellidos", apellidos);
                comando.Parameters.AddWithValue("documento", documento);
                comando.Parameters.AddWithValue("titulo", titulo);
                comando.Parameters.AddWithValue("cadenafoto", cadenaPicPerfil);
                comando.Parameters.AddWithValue("cadenaCV", cadenaCV);
                comando.Parameters.AddWithValue("idGenero", idGenero);
                oBase.Conectar();
                reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    mensaje = reader.GetString(0);
                }
            }
            catch (Exception ex)
            {

                mensaje = ex.Message;
            }
            finally
            {
                oBase.CerrarConexion();
            }
            return mensaje;
        }

        public string EditUsuarios()
        {
            string mensaje = "";
            BaseDatos oBase = new BaseDatos();
            SqlDataReader reader;
            try
            {
                string consulta = string.Format("sp_updateUsuarios");
                SqlCommand comando = new SqlCommand();
                comando.Connection = oBase.conexion;
                comando.CommandText = consulta;
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("@idDocentes", valorID);
                comando.Parameters.AddWithValue("nombres", nombres);
                comando.Parameters.AddWithValue("apellidos", apellidos);
                comando.Parameters.AddWithValue("documento", documento);
                comando.Parameters.AddWithValue("idGenero", idGenero);
                oBase.Conectar();
                reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    mensaje = reader.GetString(0);
                }
            }
            catch (Exception ex)
            {

                mensaje = ex.Message;
            }
            finally
            {
                oBase.CerrarConexion();
            }
            return mensaje;
        }

        public string DeleteDocente()
        {
            BaseDatos oBase = new BaseDatos();
            string mensaje = "";
            SqlDataReader reader;
            try
            {
                string consulta = string.Format("sp_DeleteDocente");
                SqlCommand comando = new SqlCommand();
                comando.Connection = oBase.conexion;
                comando.CommandText = consulta;
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("idDocente",valorID);
                comando.Parameters.AddWithValue("estado",idEstado);
                oBase.Conectar();
                reader = comando.ExecuteReader();
                while (reader.Read())
                {
                    mensaje = reader.GetString(0);
                }
            }
            catch (Exception ex)
            {

                mensaje = ex.Message;
            }
            finally
            {
                oBase.CerrarConexion();
            }
            return mensaje;
        }
    }
}
